クロージャー Closure
独立した (自由な) 変数を参照する関数の性質
クロージャ内で定義された関数は、自身が作成された環境を 記憶
外側のスコープにある変数への参照を保持できる」という関数が持つ性質
関数とスコープ · JavaScript Primer #jsprimer
TODO:仕組みも書いてるのでちゃんと読みたい
仕組み
利用用途
関数 函数 functionに状態を持たせる手段として
外から参照できない変数 Argumentsを定義する手段として
グローバル変数を減らす手段として
高階関数 Higher-order functionsの一部部分として
関数コンポーネントを作る
デメリット
実行速度を遅くしメモリ消費量を増やす
code:closure.js
const conterMaker =(initialCount) => {
let c = initialCount;
const increment = () =>c++;
return increment;
};
const count =counterMaker(1);
// 記録したまま実行...
console.log(count(),count(),count()) //1 2 3
TODO
詳しく
参考
Closures - JavaScript | MDN
関数とスコープ · JavaScript Primer #jsprimer
https://medium.com/javascript-scene/master-the-javascript-interview-what-is-a-closure-b2f0d2152b36https://medium.com/javascript-scene/master-the-javascript-interview-what-is-a-closure-b2f0d2152b36